1. Field of the Invention
The present invention relates generally to a user interface and more particularly, to an apparatus and method for providing a user with a custom routine through a standard interface.
2. Related Art
Software users have a variety of needs. For a moderate to complex application, one program typically cannot meet all the needs of all users. Some of the user's needs can be met if the user is able to customize the program. It is desirable for the program to be customized in a manner such that few of its characteristics are disturbed and so that users are not negatively impacted. It is also desirable to allow the user to access and control resources outside of the program when customizing the program, since the usual motivation for customizing is that the resources within the program are not sufficient to meet a specific need.
Program source code can be customized by each individual user. However, in this scenario, the source code often diverges and updates become difficult. For some programs, it is possible to "kludge" existing features to allow user routines to be run from the interfaces. "Kludge" is defined as a quick fix to a problem. However, the program can become cumbersome and unintuitive when existing features of a program are used in ways that they were not intended.
Typically, programs can allow their user interface to be customized so that any feature of the program can be accessed. However, this only allows features which already exist in the program to be used. If a feature not supported by the program is required, the user is not able to both define the new feature and integrate this feature into the new program. If the interface is customized by the user, some of the consistency of the interface can be lost. Furthermore, if a single installation of a program has multiple users, consistency of the program is of primary importance. As such, individual customization of a program is not feasible.
SUMMARY OF THE INVENTION
The present invention is a method for accessing a user defined custom routine through a graphical interface of an application program. The method comprises the steps of: (a) linking the user defined custom routine to an application program; (b) displaying the graphical interface; (c) displaying a button for accessing the user defined custom routine on the graphical interface; and (d) transferring control to the user defined custom routine when a user activates the button.
The user is allowed to define new routines. These new routines may use features supported by the application program, or the routines may define new capabilities not inherent in the application program. Routines which define new capabilities may use a high level programming language, operating system commands, or I/O device commands. The program application program is able to support new routines by linking user defined code to a predefined access point in the application program.
If the user defines a new routine referred to as run_user_procedure, this new routine is first linked to the standard application program and then mapped to an interface point on the user interface. The interface point is in the form of a graphical button that appears on the user interface if the user routine is defined. If the button is pressed, a user_func test suite is executed. The user_func test suite provides a pointer to the run_user procedure routine, which in turn allows execution of the user defined run_user _procedure routine.
The present invention avoids individual customization of source code and "kludges" while allowing a quick and easy way for users to access the custom routines that they require. The present invention also allows the user to add capabilities to the application program and access them without changing the user interface.